package models

// Chart 自定义页面
type Chart struct {
	X      int          `json:"x"`
	Y      int          `json:"y"`
	W      int          `json:"w"`
	H      int          `json:"h"`
	I      string       `json:"i"`
	Config *ChartConfig `json:"config"`
	Moved  bool         `json:"moved"`
}

type ChartConfig struct {
	Name        string                   `json:"name"`
	WorksheetId string                   `json:"worksheetId"`
	SortField   string                   `json:"sortField"`
	XAxis       []*Axis                  `json:"xAxis"`
	YAxis       []*Axis                  `json:"yAxis"`
	Filters     []*Filter                `json:"filters"`
	XAlia       string                   `json:"xAlia"`
	NumberStyle map[string]interface{}   `json:"numberStyle"`
	IsAsc       bool                     `json:"isAsc"`
	ChartType   string                   `json:"chartType"`
	ColorConfig []map[string]interface{} `json:"colorConfig"`
	ColorLimit  []*ColorLimit            `json:"colorLimit"`
	Id          string                   `json:"id"`
	Type        string                   `json:"type"`
}

type Axis struct {
	Alia        string `json:"alia"`
	DataType    int    `json:"dataType"`
	Field       string `json:"field"`
	Rename      string `json:"rename"`
	ComputeType string `json:"computeType"`
	UUID        string `json:"uuid"`
}

type Filter struct {
	UUID       string   `json:"uuid"`
	Alia       string   `json:"alia"`
	DataType   int      `json:"dataType"`
	Field      string   `json:"field"`
	FilterType int      `json:"filterType"`
	DateRange  int      `json:"dateRange"`
	SpliceType int      `json:"spliceType"`
	Values     []string `json:"values"`
}

type ColorLimit struct {
	UUID       string `json:"uuid"`
	Field      string `json:"field"`
	ColorValue string `json:"colorValue"`
	LimitType  string `json:"limitType"`
	LimitValue int    `json:"limitValue"`
	Front      int    `json:"front"`
	Later      int    `json:"later"`
}
